Estoy buscando eliminar cualquier valor después de ':->' en JavaScript. Por ejemplo, si 'Packet:->3', me gustaría almacenar "Packet:->" en la variable para poder usarlo antes de que se vea la declaración if. abajo. Más o menos estoy buscando eliminar cualquier dígito después de '>'
Estaba intentando lo siguiente, pero no tuve mucha suerte.
NTEremoved = NTE.indexOf(':->');
¿Cuál sería la mejor manera de hacer esto?
if(NTE == 'Packet:->' || NTE == 'Serving:->' || NTE == 'Can/Carton/Bottle:->'){ }División de cuerdas.
const testStr1 = "Packet:->3"; const testStr2 = "BlahBlahBlah278:->Hello hello this is cool"; const result1 = testStr1.split(":->")[0] + ":->"; // split "splits" the string into an array based on the delimiter ":->"; the second part would be 3 const result2 = testStr2.split(":->")[0] + ":->"; console.log(result1); console.log(result2);Haría algo como esto, para ocuparme también de los casos extremos (suponiendo que no te importe lo que viene después del primero :-> :
let texts = ["Packet:->11", "Cat:->22", "Packet:->:->:->44"]; for (let text of texts) { console.log(text.replace(/(:->).*$/, "$1")) }Como mencionó que intentó usar indexOf antes pero no lo hizo, le proporcionaré una forma de usar una combinación de indexOf y String.slice
let string = "Serving:->3" //Indexof return the first index of an element so you have to add 3 (the length of ":->" let newstring = string.slice(0,string.indexOf(":->")+3) console.log(newstring)